{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "532d6980",
   "metadata": {},
   "source": [
    "#   [Py4Hw User Guide](../UserGuide.ipynb)> 1.8 Abstract Logic\n",
    "###  [Next: 2.1 Bitwise Logic Operations](../s02/logic.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "261dedd3",
   "metadata": {},
   "source": [
    "As Python, py4hw is highly dynamic in nature. This means you can manipulate objects during runtime.\n",
    "Creating modules that encapsulate logic is a powerfull method that helps to understand the hiererachical nature of complex circuits. However, creating invididual classes for such agrupations sometimes can be tedious.\n",
    "\n",
    "In some cases it might be worth to define classes during runtime (rather statically in the source code) to encapsulate some circuits in a semantically related group.\n",
    "\n",
    "For instance, lets build a circuit that checks is a value is between some ranges. To check for the range, we use comparators, but we would like to maintain the hierarchy.  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "b2a647fd",
   "metadata": {},
   "outputs": [],
   "source": [
    "import py4hw\n",
    "\n",
    "class RangeDetector(py4hw.Logic):\n",
    "    def __init__(self, parent:py4hw.Logic, name:str, a:py4hw.Wire, ranges:list, r:list):\n",
    "        \n",
    "        super().__init__(parent, name)\n",
    "        \n",
    "        self.addIn('a', a)\n",
    "        \n",
    "        for idx, ri in enumerate(r):\n",
    "            self.createRangeDetector(ranges, idx, ri)\n",
    "\n",
    "    def createRangeDetector(self, ranges, idx, ri):\n",
    "        self.addOut(f'r{idx}', ri)\n",
    "\n",
    "        lv = ranges[idx][0] # low value\n",
    "        hv = ranges[idx][1] # high value\n",
    "\n",
    "        lvk = self.wire(f'k{idx}_{lv}', a.getWidth())\n",
    "        hvk = self.wire(f'k{idx}_{hv}', a.getWidth())\n",
    "\n",
    "        py4hw.Constant(self, f'k{idx}_{lv}', lv, lvk)\n",
    "        py4hw.Constant(self, f'k{idx}_{hv}', hv, hvk)\n",
    "\n",
    "        gtl = self.wire(f'gtl_{idx}')\n",
    "        eql = self.wire(f'eql_{idx}')\n",
    "        ltl = self.wire(f'ltl_{idx}')\n",
    "        gth = self.wire(f'gth_{idx}')\n",
    "        eqh = self.wire(f'eqh_{idx}')\n",
    "        lth = self.wire(f'lth_{idx}')\n",
    "\n",
    "        gtel = self.wire(f'gtel_{idx}')\n",
    "        lteh = self.wire(f'lteh_{idx}')\n",
    "\n",
    "        py4hw.Comparator(self, f'cmp_low_{idx}', a, lvk, gtl, eql, ltl)\n",
    "        py4hw.Comparator(self, f'cmp_high_{idx}', a, hvk, gth, eqh, lth)\n",
    "\n",
    "        py4hw.Or2(self, f'gtel_{idx}', gtl, eql, gtel)\n",
    "        py4hw.Or2(self, f'lteh_{idx}', lth, eqh, lteh)\n",
    "\n",
    "        py4hw.And2(self, f'r{idx}', gtel, lteh, ri)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "c920d717",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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c+zYMWswrFChQobtJicnM3z4cL744gvs7e0ZNmwYwcHBGAxZB89bLBYL77zzDh999BERERFUq1aNoKAg6/frxo0bGTlyJGfOnKFx48b07duX//u//+PatWuULFkywzZvH/0EeOSRR9i7dy8Ao0ePxt3dPdv1iYhI0acbTURuCgh0BiDmkpnNwdf4+PFz/LoihuREC88995z1OC8vL3755RcCAgIAOH78OIGBgZw5cybDdhcvXoyDgwN79+7lvffeY/bs2Xz66ac5qm38+PEsXLiQefPm8ccffzBq1Cief/55tm/fzpkzZ+jatSsdOnTg4MGDDBw4kLFjx2bZpr+/v/V1//792bNnD2+88YZ1W1RUVI5qFBGRok0jhZKpKyeS7ro9s/33IuZiivXPC2GJed7+3SREm9O8j71k5sc3r7Hr/Uh8jI9T0SWMFEsSEEWFChUICQmhVatWHDt2jBMnTvDUU0+xf//+dCOAFSpUYPbs2RgMBqpXr87hw4eZPXs2gwYNylZdsbGxzJo1i61bt9KkSRMAKleuzK5du5g/fz7+/v5Urlw5XR/Tpk3L8d/BxIkTsbOzY8KECTganPF2qoJHskeBfy3uVX58b4qI3O8UCiUdo2tqqNkw9updj8tq/704uDKWgytj8639nIi/bqYsgQyvHAjA59eeB8DPz4+2bdty7NgxAI4ePUpCQgLOzs5pzm/cuHGaoNikSRNmzpxJSkpKtu70DQsLIz4+nrZt26bZnpiYSP369YmLi8uwj9zq1q0b06dPxyPZn5cCNgKwpMeFXLdnS7e+l0VEJGsKhZJOqUqODNzgQ2KsJcP9V04ksWHsVTq+7Unpyo552vdvq2I4uDKWej1dqfOMW562nZWt065xNjTzEbHrSRGsjZjA9RInsVgsvPLKK8ybN8+6f9asWekCYV649SicDRs2pLvT2cnJiRdffDHP+goLC6NVq1bExMSQYDjGnOMdKFOmDN9//32e9VFQjK4GSlXK2+9PEZH7mUKhZCg7P0xLV3akbE1jnvbrtjN15MzN2z7P286Kk+mOKbYGwALu5ez53X4FH256FTPJeNh58J///IePPvrIeuj8+fMZOHBghu3u2bMn3fuqVatm+3mANWvWxMnJidOnT9OyZcsM969Zs+aufWbln3/+4YsvvuC///0vFy9eTN3okEJ4/O9g8Svwr4WI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1i9EGf3SVJT89GEkJ3bEW0cK0zCAo4uBCt0uETo29XJuw4YN8/xxWaGhoTzzzDOcOnUKSP2Fev369bRq1SpP+xGRVAqFRcCd83SeeeYZfv75Z86dO2ejikQkK0X9lyaXknZw5/0bBnAyGXhkoDv1e7nR+98vkWRJfUbhkCFD8qzv5ORkZs2axfjx40lKSp277OPjw4YNG3jooYfyrB8RSUuhsJAqW7Zshtu7devGsmXLeOCBBwq4IhEpdm7NAjGA880wWK+XG8YSdvz666988803QGpg69mzZ550+dNPPzFixAgOHDhg3fbII4+watUq/Pz88qQPEcmYQmEBCwkJydZxL774IpcuXeLkyZPWbW3atGH06NEF8nBYESnuDFjM4OxhR+NBJur2SA2DADExMTz33HPWI8eMGXNPl44tFgs///wzb731lvVmEkhd3/iVV14hODhYKzmJFACFwkLK19eXTz75xNZliEgxVb+XG751jDzYuQSOLnbW7devX6dHjx7WB1bXqVOHYcOG5bh9i8XC33//zfr16/niiy84dOhQmv21a9fm448/1g0lIgVIoVBERNLxqWXEp9b/RuciIyOZMmUKS5cutc5ndnNz46uvvsryYfqffvopMTExxMbGcvHiRY4dO8aBAwc4fz79Xdrly5dn/PjxDBgwAAcH/YgSKUj6FyciIllq2bJlmtE8Ozs7nJ2deeyxx7I8NzvLQjZs2JD//Oc/9O7dGycnp3uqVURyR6FQRESydPny5TTvzWZzum05UapUKRo2bEibNm3o0qUL1apVu9cSReQeKRSKiEiWfHx8iI+Px9HREXt7+xyde+NG6jrKnp6eLF68mEqVKuHn56c1i0UKGYVCERHJ0v79+21dgojkM7usDxERERGR+51CoYiIiIgoFIqIiIiIQqGIiIiIoFAoIiIiIigUioiIiAgKhSIiIiKCQqGIiIiIoFAoIiIiIigUioiIiAgKhSIiIiKC1j7OUEREBOXLl7d1GXcVERFh6xJERETkPqJQeBuTyQSA2WwmPDzcxtVkz62aRURERO6FQuFtgoODCQoKIjo62talZIvJZCI4ONjWZYiNBQYGUq9ePd59991MjzEYDKxevZqnnnoqW22GhITQqlUrrl27RsmSJfOkThERKdwUCm/TrVs3unXrZusyRPJcREQEpUqVKtD+/vvf/xIa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nqNFixa6kUTEhhQKC7Hq1atnukqGiEhB8vX15fLlyxiNRlxdXXM0knfp0iUsFgtGo5HWrVtTqVIl6tSpQ8OGDaldu3a+LA8pIjmnUCgiIlnav3+/rUsQkXymX89ERERERKFQpKgLDAxk5MiRti5DRESKOIVCkfuIv78/7777braO/fHHHzEYDNaP+vXr0759e3bv3p2/RYqISKGkOYUixdT169fTvD948CAAO3bs4Ntvvy34gkRExKY0UihynwgMDOTUqVOMGjXKOvp3N3fud3RMXZYwLi6Ojh07Eh8fn2+1iohI4aNQKHKf+OabbyhfvjyTJ08mIiLCui5tZmrUqGF93b9/f2JiYnjyyScBiI+Pz/C5dCIicv/S5WOR+4Snpyf29vaYTCZ8fHxyfL7RaOSrr76iR48erF27FkeDM95OVShlKcWFsMR8qNg2rpxIsnUJIiKFkkKhiFgZjUY++eQTtmzZgkeyPy8FbARgSY8LNq4s7xldtXKGiMjtFApFxOr69et07NiRmJgYEgzHmHO8A56enmzevNnWpeUpo6uBUpUcbV2GiEiholAoch8xGo2kpKTk+LzY2FiOHTtG7969rStXpBgSCY//HQx+lK1pzOtSRUSkkNGNJiL3EX9/f3bs2EF4eDiXL1/O9nkrV66katWq1kDo7e1NmTJl8qtMEREphBQKRe4jkydP5uTJkwQEBODl5XXXY728vHBwSH+xwNvbm23btlkfUSMiIsWDLh+LFHEhISHW140bN+bQoUPZOs/Ly4tly5bx9ddfYzabAShbtiyjRo0iICAgP0oVEZFCTKFQpBjr3r073bt3t3UZIiJSCOjysYiIiIhopDAjERERlC9f3tZl3FVWq1WIiIiI5IRC4W1MJhMAZrOZ8PBwG1eTPbdqFhEREbkXCoW3CQ4OJigoiOjoaFuXki0mk4ng4GBblyEiIiL3AYXC23Tr1o1u3brZugwRERGRAqcbTUREREREoVBEREREFApFREREBIVCEREREUGhUERERERQKBQRERERFApFREREBIVCEREREUGhUERERERQKBQRERERFApFREREBK19LJJjERERlC9f3tZl5LuIiAhblyAiIgVIoVAkm0wmEwBms5nw8HAbV1Nwbn3eIiJyf1MoFMmm4OBggoKCiI6OtnUpBcZkMhEcHGzrMkREpAAoFIpkU7du3ejWrZutyxAREckXutFERERERBQKRUREREShUERERERQKBQRERERFApFREREBIVCEREREUGhUERERERQKBQRERERFApFREREBIVCEREREUGhUERERERQKBQRERERFApFREREBIVCEREREUGhUERERERQKBQRERERFApFREREBIVCEREREUGhUERERERQKBQRERERFApFREREBIVCEREREUGhUERERERQKBQRERERFApFREREBIVCEREREUGhUKTICwwMZOTIkbYuQ0REijiFQhHJlatXr/Liiy9SvXp1SpQoQcWKFRkxYgSRkZG2Lk1ERHLBwdYFiEjRdO7cOc6dO8eMGTOoWbMmp06dYujQoZw7d46vv/7a1uWJiEgOaaRQJIfMZjPTpk2jSpUqODk5UbFiRaZMmcLJkycxGAx8+eWXNG/eHBcXFxo2bMjff//Nvn37aNCgAW5ubrRv355Lly5Z2+vXrx9PPfUUkyZNwtvbG3d3d4YMGUJiYmKu6rt27Rp9+vShVKlSlChRgieeeIKjR48CYLFY8PLyYtWqVdbj69Wrh7e3t/X9zz//jKOjIzExMXftp1atWqxatYrOnTsTEBDAY489xpQpU1i/fj3Jycm5ql1ERGxHoVAkh1577TWmTZtGUFAQYWFhLFu2jLJly1r3T5w4kfHjx3PgwAEcHBzo3bs3Y8aMYc6cOezcuZPjx48zYcKENG1u2bKFI0eOsG3bNpYvX87q1auZNGlSrurr168f+/fvZ926dfz8889YLBY6dOhAUlISBoOBFi1aEBISAqQGyLCwMJKSkggLCwMgJCSEhx9+GDc3txz3HRkZibu7Ow4OugghIlLU2Ox/7sRYMxfCcjcSkl+SE8xEhqfg4eeAg5Mhj9u2EBmejIefPQ5O928Wv3IiKc2fOd1/42pK/hSWR6Kjo5kzZw7vv/8+ffv2BSAgIIBmzZpx8uRJAF5++WUef/xxAF566SV69+7Nli1baNq0KQADBgxg0aJFado1Go189tlnlChRggcffJDJkyfzyiuvEBwcjJ1d9r9fjh49yrp16/jpp5949NFHAVi6dCkVKlRgzZo1dO/encDAQD7++GMAduzYQd26dalYsSIhISHUrFmTkJAQAgMDc/x3c+XKFYKDgxkyZEiOzxUREdsr8FBo55Aats7/nsySHhcKunspIBvGXr2n/QnR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Y7r9ITOvcXpvIsYSCoW2EhAQgLOzszUMms0avRURKQ5sdvm4hKc9ZWsabdV9pvzq52fbTvnXeBFTurJjhl9/Z/fiG5gLgx07dtChQ4c0o4Ourq42rEhERAqKfgKL3EeMRiMpKSk5Pu/w4cNMmTKFJ554wjqX0Mkp9ZeYrG5YERGR+4NCoch9xN/fnx07dhAeHs7ly5ezfd6+ffsYP348N27cAOCJJ56gdOnS+VWmiIgUQgqFIveRyZMnc/LkSQICAvDy8rrrsQEBAZQtWzbd9o4dO7J69WqNEIqIFDN6eLVIERcSEmJ93bhxYw4dOpSt85ycnAgLCyMkJMR6M4mPjw9NmzZVIBQRKYYUCkWKMU9PT7p27WrrMkREpBDQ5WMRERERUSgUEREREYVCEREREUGhUERERERQKBQRERERFApFREREBIVCEREREUGhUERERERQKBQRERERFApFREREBIVCEREREUGhUERERERQKBQRERERFApFREREBIVCEREREUGhUEREREQAB1sXIFLUREREUL58eVuXke8iIiJsXYKIiBQghUKRbDKZTACYzWbCw8NtXE3BufV5i4jI/U2hUCSbgoODCQoKIjo62talFBiTyURwcLCtyxARkQKgUCiSTd26daNbt262LkNERCRf6EYTEREREVEoFBERERGFQhERERFBoVBEREREUCgUERERERQKRURERASFQhERERFBoVBEREREUCgUERERERQKRURERASFQhERERFBoVBEREREUCgUERERERQKRURERASFQhERERFBoVBEREREUCgUERERERQKRURERASFQhERERFBoVBEREREUCgUERERERQKRURERASFQhERERFBoVBEREREUCgUERERERQKRYq8wMBARo4ceddjDAYDa9asyXabISEhGAwGrl+/fk+1iYhI0aFQKFIMRERE8MQTTxRYf9988w1t27bFy8sLd3d3mjRpwvfff19g/YuISM4pFIoUAz4+Pjg5ORVYfzt27KBt27Zs3LiR0NBQWrVqRefOnfn1118LrAYREckZhUKRHDKbzUybNo0qVarg5ORExYoVmTJlCidPnsRgMPDll1/SvHlzXFxcaNiwIX///Tf79u2jQYMGuLm50b59ey5dumRtr1+/fjz11FNMmjQJb29v3N3dGTJkCImJiTmqacyYMXh6euLj48Mb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UigUySaTyQSA2WwmPDzcxtUUnFuft4iI3N8UCkWyKTg4mKCgIKKjo21dSoExmUwEBwfbugwRESkACoUi2dStWze6detm6zJERETyhW40ERERERGFQhERERFRKBQRERERFApFREREBIVCEREREUGhUERERERQKBQRERERFApFREREBIVCEREREUGhUERERERQKBQRERERFApFREREBIVCEREREUGhUERERERQKBQRERERFApFREREBIVCEREREUGhUERERERQKBQRERERFApFREREBIVCEREREUGhUERERERQKBQRERERFApFREREBIVCEREREUGhUERERERQKBQRERERFApFREREBIVCEREREUGhUERERERQKBQRERERFApFREREBIVCEREREQEcbNVxZHgyF8ISbdV9hpITzESGp+Dh54CDkyGP27YQGZ6Mh589Dk7K4pmJDE+2dQkiIiLFUoGHQkeX1LC1a24Uu+ZGFXT3UkTc+j4RERGRglHgodDdN7XLjm97UrqyY0F3f1caKbS9KyeS2DD2qvX7RERERAqGzX7ylq7sSNmaRlt1nym/+vnZtlP+NS4iIiJyDzRkJSIiIiIKhSIiIiKiUCgiIiIiKBSKiIiICAqFIiIiIoJCoYiIiIigUCgiIiIiKBSKiIiICAqFIiIiIoJCoYiIiIigUCgiIiIiKBSKiIiICAqFIiIiIoJCoYiIiIigUCgiIiIiKBSKiIiICAqFIiIiIoJCoYiIiIigUCgiIiIiKBSKiIiICAqFIiIiIoJCoYiIiIigUCgiIiIiKBSKiIiICAqFIiIiIoJCoYiIiIigUCgiIiIiKBSKiIiICAqFIiIiIoJCoYiIiIigUCgiIiIiKBSKiIiICAqFIiIiIoJCoYiIiIigUCgiIiIiKBSKiIiICAqFIiIiIoJCoYiIiIigUCgiIiIiKBSKiIiICAqFIiIiIoJCoYiIiIigUCgiIiIiKBSKiIiICAqFIiIiIoJCoYiIiIigUCgiIiIiKBSKiIiICAqFIiIiIoJCoYiIiIigUCgiIiIiKBSKiIiICAqFIiIiIoJCoYiIiIigUCgiIiIiKBSKiIiICAqFIiIiIoJCoYiIiIgADrbq+MqJJFt1nankBDOR4Sl4+Dng4GTI47YtRIYn4+Fnj4OTsnhmCuP3hYiISHFQ4KHQ6JoatjaMvVrQXUsRcuv7RERERAqGwWKxWAq602unkkiMLfBus6SRwsLB6GqgVCVHW5chIiJSrNgkFIqIiIhI4aIhKxERERFRKBQRERERhUIRERERQaFQRERERFAoFBEREREUCkVEREQEhUIRERERQaFQRERERFAoFBEREREUCkVEREQEhUIRERERQaFQRERERFAoFBEREREUCkVEREQEhUIRERERQaFQRERERFAoFBEREREUCkVEREQEhUIRERERQaFQRERERFAoFBEREREUCkVEREQEhUIRERERQaFQRERERFAoFBEREREUCkVEREQEhUIRERERQaFQRERERFAoFBEREREUCkVEREQEhUIRERERQaFQRERERFAoFBEREREUCkVEREQEhUIRERERQaFQRERERFAoFBEREREUCkVEREQEhUIRERERQaFQRERERFAoFBEREREUCkVEREQEhUIRERERQaFQRERERFAoFBEREREUCkVEREQEhUIRERERQaFQRERERFAoFBEREREUCkVEREQEhUIRERERQaFQRERERFAoFBEREREUCkVEREQEhUIRERERQaFQRERERFAoFBERERHg/wHm+HwqsEO3uwAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 803x1092 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "hw = py4hw.HWSystem()\n",
    "\n",
    "a = hw.wire('a', 8)\n",
    "r = hw.wires('r', 3, 1)\n",
    "\n",
    "py4hw.Sequence(hw, 'a', [1,2,4,8,12,16,21,30], a)\n",
    "RangeDetector(hw, 'dut', a, [[0,9], [10,20], [5,15]], r)\n",
    "\n",
    "sch = py4hw.Schematic(hw.children['dut'])\n",
    "\n",
    "sch.draw()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c89ee53c",
   "metadata": {},
   "source": [
    "The structure organization can be encapsulated in abstract classes so that is visualized in a more compact way."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "95fbd6a5",
   "metadata": {},
   "outputs": [],
   "source": [
    "import py4hw\n",
    "\n",
    "class RangeDetector(py4hw.Logic):\n",
    "    def __init__(self, parent:py4hw.Logic, name:str, a:py4hw.Wire, ranges:list, r:list):\n",
    "        \n",
    "        super().__init__(parent, name)\n",
    "        \n",
    "        self.addIn('a', a)\n",
    "        \n",
    "        for idx, ri in enumerate(r):\n",
    "            self.createRangeDetector(a, ranges, idx, ri)\n",
    "\n",
    "    def createRangeDetector(self, a, ranges, idx, ri):\n",
    "        self.addOut(f'r{idx}', ri)\n",
    "        \n",
    "        Range = py4hw.AbstractLogic(f'range{idx}') # here we define class name\n",
    "        obj = Range(self, f'range{idx}') # here we define instance name (the same)\n",
    "\n",
    "        obj.addIn('a', a)\n",
    "        obj.addOut('r', ri)\n",
    "        \n",
    "        lv = ranges[idx][0] # low value\n",
    "        hv = ranges[idx][1] # high value\n",
    "\n",
    "        lvk = obj.wire(f'k_{lv}', a.getWidth())\n",
    "        hvk = obj.wire(f'k_{hv}', a.getWidth())\n",
    "\n",
    "        py4hw.Constant(obj, f'k_{lv}', lv, lvk)\n",
    "        py4hw.Constant(obj, f'k_{hv}', hv, hvk)\n",
    "\n",
    "        gtl = obj.wire('gtl')\n",
    "        eql = obj.wire('eql')\n",
    "        ltl = obj.wire('ltl')\n",
    "        gth = obj.wire('gth')\n",
    "        eqh = obj.wire('eqh')\n",
    "        lth = obj.wire('lth')\n",
    "\n",
    "        gtel = obj.wire('gtel')\n",
    "        lteh = obj.wire('lteh')\n",
    "\n",
    "        py4hw.Comparator(obj, 'cmp_low', a, lvk, gtl, eql, ltl)\n",
    "        py4hw.Comparator(obj, 'cmp_high', a, hvk, gth, eqh, lth)\n",
    "\n",
    "        py4hw.Or2(obj, 'gtel', gtl, eql, gtel)\n",
    "        py4hw.Or2(obj, 'lteh', lth, eqh, lteh)\n",
    "\n",
    "        py4hw.And2(obj, 'r', gtel, lteh, ri)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "291933ae",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 234x306 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "hw = py4hw.HWSystem()\n",
    "\n",
    "a = hw.wire('a', 8)\n",
    "r = hw.wires('r', 3, 1)\n",
    "\n",
    "py4hw.Sequence(hw, 'a', [1,2,4,8,12,16,21,30], a)\n",
    "RangeDetector(hw, 'dut', a, [[0,9], [10,20], [5,15]], r)\n",
    "\n",
    "sch = py4hw.Schematic(hw.children['dut'])\n",
    "\n",
    "sch.draw()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "a55420cd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfYAAAE3CAYAAABYX2OtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABOLklEQVR4nO3dd1hTZ/8G8DsQEvaUIaAiw4mKC7dg1WIdb92t2ip1oPbnwtbR1lXsUuvo0jpeV1WcVevrqMpwT1Rqwa2IIooiypCd8/sj5VRkBQgkhPtzXV4mJ2d8OYHcOec853kkgiAIICIiIp2gp+kCiIiISH0Y7ERERDqEwU5ERKRDGOxEREQ6hMFORESkQxjsREREOoTBTkREpEMY7ERERDqEwU5ERKRDGOyF8PX1xZQpUzRdBlUx/L3RLS4uLli2bJmmyyAqNQa7mu3atQuNGjWCXC5Ho0aNsHv3bk2XRFStMaCpumGwq9GZM2fw3nvv4cMPP0RkZCQ+/PBDDB48GOfOndN0aUREFSIrK0vTJeic8u7TUgf7oUOH0LFjR1haWsLGxga9e/fGnTt3ylWEtjt06BAsLCywcePGYudbtmwZunfvjs8++wwNGjTAZ599hq5du/JooYIoFAosWLAA7u7ukMvlqF27Nr7++mvExMRAIpFg+/bt6NSpE4yMjNC6dWvcvHkTFy5cQKtWrWBqaooePXrg6dOn4vr8/f3Rt29ffPnll7Czs4O5uTnGjh1b5j+ypKQkDB8+HFZWVjA2NsY777yDW7duAQAEQYCtrS127dolzu/l5QU7Ozvx+ZkzZ2BgYIDU1NQy7qHqISUlBcOGDYOJiQlq1qyJpUuXipdFfH19cf/+fQQGBkIikUAikYjLnT59Gp07d4aRkRFq1aqFSZMmIS0tTYM/SdXg6+uLCRMmYOrUqahRowa6d++u6ZKqPHXv01IHe1paGqZOnYoLFy4gJCQEenp66NevHxQKRbkK0VZbt27F4MGDsXHjRgwfPrzYec+cOYO333473zQ/Pz+cPn26Ikustj777DMsWLAAs2fPRnR0NLZs2QJ7e3vx9blz52LWrFm4dOkSpFIphgwZgunTp+OHH37AiRMncOfOHcyZMyffOkNCQnDt2jWEhYUhODgYu3fvxpdfflmm+vz9/XHx4kX88ccfOHPmDARBQM+ePZGdnQ2JRILOnTsjPDwcgPJLQHR0NLKzsxEdHQ0ACA8PR8uWLWFqalq2HVRNTJ06FadOncIff/yBI0eO4MSJE7h06RIA4Pfff4ezszOCgoIQHx+P+Ph4AMDVq1fh5+eH/v3746+//sK2bdtw8uRJTJgwQZM/SpWxYcMGSKVSnDp1CitXrtR0OTpBrftUKKeEhAQBgHD16tXyrkpr+Pj4CJMnTxZ++eUXwcLCQggNDVVpOQMDA2Hz5s35pm3evFmQyWQVUWa1lpycLMjlcmH16tUFXrt3754AQFizZo04LTg4WAAghISEiNO+/fZboX79+uLzESNGCNbW1kJaWpo4bcWKFYKpqamQm5tbYk15vzeCIAg3b94UAAinTp0SX3/27JlgZGQkbN++XRAEQfjxxx8FT09PQRAEYc+ePUKrVq2E/v37C7/88osgCILw9ttvCzNmzFBld1RbycnJgoGBgbBjxw5x2osXLwRjY2PxvahTp46wdOnSfMt9+OGHQkBAQL5pJ06cEPT09IT09PQilyPl77mXl5emy9Ap6t6npT5iv3PnDoYOHQpXV1eYm5ujbt26AIDY2NjyfcPQMrt27cKUKVNw+PBhdOnSReXlXj/VByhPub45jcrv2rVryMzMRNeuXYucp2nTpuLjvCP5Jk2a5JuWkJCQb5lmzZrB2NhYfN6uXTukpqbiwYMHpa5PKpWiTZs24jQbGxvUr18f165dA6A8/RYVFYVnz57h2LFj8PX1ha+vL44dO4acnBycPn0aPj4+pdpudXP37l1kZ2fD29tbnGZhYYH69esXu1xERATWr18PU1NT8Z+fnx8UCgXu3btX0WVXea1atdJ0CTpHnfu01MHep08fJCYmYvXq1Th37pzYMEzXGlB4eXnB1tYW69atgyAIKi3j4OCAx48f55uWkJCQ7/QwqYeRkVGJ8xgYGIiP875cvTlN1UtIpf1yVtTvzOtf9Dw9PWFjY4Njx46Jwe7j44Njx47hwoULSE9PR8eOHUu13eombz8X9oW6OAqFAmPHjsWVK1fEf5GRkbh16xbc3NwqrF5dYWJioukSdI4692mpgj0xMRHXrl3DrFmz0LVrVzRs2BBJSUlqK0abuLm5ISwsDHv37sXEiRNVWqZdu3Y4cuRIvmmHDx9G+/btK6LEas3DwwNGRkYICQlR63ojIyORnp4uPj979ixMTU3h7OxcqvU0atQIOTk5+e6ISExMxM2bN9GwYUMAEK+z7927F3///Tc6deqEJk2aIDs7G7/++itatGgBMzMz9fxgOsrNzQ0GBgY4f/68OC05OVlspAgAMpkMubm5+ZZr0aIFoqKi4O7uXuCfTCartPqJKkKpgt3Kygo2NjZYtWoVbt++jdDQUEydOrWiatO4evXqISwsTDwtX5LJkyfj8OHDWLBgAa5fv44FCxbg6NGj7LSkAhgaGmLGjBmYPn06Nm7ciDt37uDs2bP473//W671ZmVlYdSoUYiOjsbBgwcxd+5cTJgwAXp6pTu55eHhgXfffRdjxozByZMnERkZiQ8++ABOTk549913xfl8fX2xZcsWNG3aFObm5mLYb968Gb6+vuX6WaoDMzMzjBgxAtOmTUNYWBiioqIwcuRI6OnpiUfxLi4uOH78OOLi4vDs2TMAwIwZM3DmzBn83//9H65cuYJbt27hjz/+UPlLPJE2K9WnlZ6eHrZu3YqIiAh4enoiMDAQixYtqqjatEL9+vURGhqK4OBgfPLJJ8XO2759e2zduhXr1q1D06ZNsX79emzbti3fdVZSn9mzZ+OTTz7BnDlz0LBhQ7z33nsFrpmXVteuXeHh4YHOnTtj8ODB6NOnD+bNm1emda1btw4tW7ZE79690a5dOwiCgAMHDuS7HNClSxfk5ubmC3EfHx/k5uby+rqKlixZgnbt2qF3797o1q0bOnTogIYNG8LQ0BAAEBQUhJiYGLi5ucHW1haAsv3FsWPHcOvWLXTq1AnNmzfH7NmzUbNmTU3+KERqIRFUvYBMpOP8/f3x4sUL7NmzR9OlUDmkpaXByckJixcvxqhRozRdDlGlk2q6ACKi8rh8+TKuX78Ob29vvHz5EkFBQQCQ75IHUXXCYC+F4joKOXjwIDp16lSJ1VBlio2NRaNGjYp8PTo6GrVr167Eiuh133//PW7cuAGZTIaWLVvixIkTqFGjhqbLItIInoovhdu3bxf5mpOTk0q3YFHVlJOTg5iYmCJfd3FxgVTK78lEpHkqB7tEIkHPnj3RsmXLAq/p6+ujT58+aNGihdoLJCIqzHfffYc2bdrA19e3VP0MBAUFITs7GyYmJrCxsYGLiwuaNGkCBweHCqyWKL/Lly+Lmenl5YU+ffoUOl/79u3h5+dXqt/xUgV7cfT09LBx40YMGzZM5Y1rm9d/RicnJw1WohozMzPMnz8fAwcO1HQplaaqvUfqUB3f55K0bNlS7A9eKpXCyspK5fvPHz16VGgHNs7OzujWrRv69u2LHj16QC6Xq7Xmqs7ExAQZGRnQ19fPN1hReTg4OODixYtqWZc2UuQKePkwB5a1pJDo5c/Q9evX46OPPlJpPdOmTcOCBQtUDne1BTugDPcNGzbggw8+UGnj2qYqdv3aoEEDsYvS6qAqvkfqUN3e55I4OjqKA7pUBGtra4wePRqTJk2qNl8gS6Kvr6/2wb4kEgkcHR3h7u6OevXqoX79+mjevDk6deqU77bQqurU8pc4vTwZzq1keOcrG1g6/3u5rjTBDgCffvopFi5cqNJnYKmCffDgwRg9enSB17Zv3441a9aI823YsAEffvihygVri6p0NBgfHw+FQgEnJyc8fPhQ0+VUmqr0HqlDdX2fS9KiRQvExMQgNTUV2dnZ4nRbW9sSj9wzMzMhCAIsLCwwffp03L59GxERETh79my+XgcBQC6XY9y4cZgzZw6sra0r5GepKmQyGbKzs6Gnp6eW+/0TExORkZFR6GuWlpbo3bs3+vXrh169elXZsyd3j6dj18fKTpEkekDjd43RLsAClrWkOHHiBDp37gxA2YPiihUrCix/6dIlzJw5U3w+depULF68uOQNqzpaDIBCR9ISBEFQKBTCxx9/LAAQAAgSiaTAKGdVgZOTkwBAcHJy0nQpJapKtapTdfu5q9vPW1rZ2dnC2LFjxc8eR0dHISkpqUzrSk9PF/bv3y8MGTJEMDAwENcJQLC2thbWr18vKBQK9f4AVYi6fxcnTJggNGjQQLC1tc23r9/8V6tWLWHFihVCRkaGWrZbmWLPpwsLG8eK/xY1jRUWNYkV9n/+TDh1KFL8GceNG1fkOlatWpVvf6hCLc14JRIJfv75ZyQlJSE4OBhGEgus+eIImpn9p9DTBsbWenBpzxbkRKSa++cyIJEAtb0N802XSqX4+eefcePGDYSHh+PRo0dYsGABvv3221Jvw9DQED179kTPnj2xdOlSLFmyBD///DNevXqF58+fw9/fH7t27cLatWurxa10Re1zdfnpp5/Ex0lJSbh16xaio6Nx+PBh7N+/H8nJyQCABw8eYPz48fjmm2/w7bffYujQoaW+JJd0PxtZaZV/A9jz+zn5ngv/DFkQve8VhD8s4V/rvziXFAxJbtFRPGbMGLx8+RLTpk1TebulOhW/evXqQk/FA8pTBt26dUNSUhK8zN/F0Fo/FTpfnkGramhduDs7OyMuLk4rTnv++OOPOHr0KACgZ8+esLCwQKdOncTBSLSp1sqyePFizJo1CxkZGbC0tMSKFSvQuXNnODo6arq0AlxcXDBlypQSxwmIjY3FhAkTAACurq5o06YN7O3t4evrCz09vWr5Phdmkady2NzmQ03RZpQZzOzzfxDev38f9erVQ1ZWFszMzPDw4UOYm5uXe7sPHz7EtGnTsHXrVnGas7Mzdu/erfNDl765zxu2dKm038WsrCyEhYXhl19+wb59+/K9NnjwYKxevVrl9zfpfjbW9Hpc8owa9LD5f/HDb/MKfe3x48d46623xDY2qkS2Wo7YIyIi0K1bN7x48QIAYNk4A29NNYKRYcHgjruciSvb0vDquXobYVRVWVlZhV4TnDx5svg47xdbKpVi69atGDBgQKXVV9lyswXoGxT+bfzTTz8VH7948QJDhgyBTCbDjh078J///KeySlSr8+fPF/jgAgA/Pz/s3r1bAxVpJ4+uRrgVko4r21IRuT0VTQeaoO1oc5g5KD/C6tSpgxEjRmD16tVISUnBunXr8v0NlZWzszOCg4MxdOhQjBw5Es+ePcPDhw/RqVMnbNmyBf369Sv3NrTVm/vc1+gT/E+6sFK2LZPJ4OfnBz8/P1y8eBHz5s3D/v37ASjbdF29ehX79u1TaYjdvCP1Xt9Zw8a1chvkPY7OwuF5BUdAlegpAzr65VGcSwqGb/sGhS//+DG6dOmC69evAwBq1aql0nZLdcTu7Oxc6Cmo27dvIzU1FQDQsWNHHDhwoMjhJqP/l4b9M5+j13fWaNRbu8b0rYyjI19fX3h6ekImk2Hjxo1o3Lgxjh07VmC+ok416evrIzg4GIGBgTp5JJd3lDB0kx2cvPI3mClqnxgYGGDHjh1FdiF66NAhfPXVV/j777+hr6+Pdu3a4YcffijXuNspKSkYN24c9uzZA3Nzc0yfPh179+6Fl5cXrly5UuA9LerPbOfOnRg0aFChr3Xv3h1RUVF49OiRzr3PpXVwViKi9r0ST2VK9AGJBGg6wARtRpvDvKYUUVFR8PT0BAA0a9YMV65cUWsNjx49wqBBg3D69GllDRIJ1qxZg5EjR6p1O9rizX2envsSBhJDRGX/D8uPT4B5zcrtkGnnzp0YM2aMeABZt25dnDlzBvb29sUu9yQ6CxsHP8Hw7fawb1S5Q/I+uJCBrR89FZ9L9AEIykZ0Fh3j0KFHMwCAjY1NoaH96NEjcWCr2rVrIywsDK6uriVut1TvzMOHD4v9cOnUqRMOHDhQbNerBGzYsAHjx4/HqVOnivzAr127NmJjYwEAY8eORWJiInbu3Inc3FwMGTJELacZtdmWDxJQu40cHf7PAs4tlAFfo0YNcdhNExMTvP3229i9ezeys7MxcOBA7NixA3379i2wrrS0NEydOhVNmjRBWloa5syZg379+uHKlSulHo41z9SpU3Hq1Cn88ccfsLe3x5w5c3Dp0iV4eXnh999/R7NmzRAQEIAxY8YUu543P5QWLFiA+fPnIzU1FUeOHFGpNbCmrh9WpvQXCmXToX8IucqnkTvSELkjDR5djdB8iBtaNPXGpb/O4+rVq0hLS4OJifoOHhwdHREWFobRo0fjt99+gyAIGDVqlPi/qqrK+/XmPt/x8FO4m3ZAC8uBWOUX/88+N0XNJjIYGJXt76g0Bg4ciObNm6NPnz64du0a7t27h169eiE8PFzrM0ciASABPP9jjLb/tIq/ceOZ+HpiYiISExOLXL5OnToICwtD3bp1VdqeysFe3AeMvr4++vXrh19//VXrd7A2cHd3x8KFxZ/S6tatG9auXQsAmDRpEho0aIAxY8Zg7dq1yM3NRVJSwdM7usDN1xB3wpW3wDy4mIng4Qmo5S1HxwkW8PPzw+bNmwEo++3fsWMH/P39sWnTJuTk5GDQoEHYvn17gdOjb166+O9//ws7OztER0eLR3ilkZKSgg0bNmDLli3o2rUrAOUQrXnX+q2traGvrw8zM7MSezOzsbERH48cORLTp09Hx44d0aNHD6SkpCAzMxNA0Uf8VeH6YUUS/rmid/NIOm4eSUf7pn649Nd5KBQKXL58GR07dlTr9mQyGTZs2AAbGxssW7YMgLJxk7m5eZFnXl5Xld+v4XVWi48Fxb/7vDKPhN3c3HD06FG0bdsWDx48QEREBAICArBly5ZK2X5pmdrrw8BYgobvGKPNGPN897HXq1cPH374IXbu3Fls/wDt27fH2rVr4eLiovJ2VQ72ou43pNIrS6MbPT09rF69GoIgYN26dTCQGMJO7o4akhp4Ep1VYH6ZiQRWdcp+PUlTRxWZKf/+guedAnz4T8C7G32M1pa5eJTxN4Bk6OvrY/369VAoFNiyZQtycnIwZswY9OzZM98X0Tt37mD27Nk4e/Ysnj17Jv4RxcbGlinY7969i+zsbHh7e4vTLCwsUL9+/bL90G9o3749/vzzT3Tr1g3Z6QrYyd1hmmVa6PuceFd5D7cmrh9WplPLX+Lu8QwxyAEAEgACYO0qRfP3TOHoJcMfx+oAwcqXz58/r/ZgB5Sn4JcsWQKJRIKlS5dCEAR8+OGHcHR0RIcOHYpdVpPXe0vrzX1+6MlCNLPog5qGDfPtc+u6lXtK3tHREQcPHkSHDh3w8uVLBAcHY+LEiWjXrl2l1qEKq9oGmHLeudDXJBIJNm7ciI0bN6p9uxy1QgPKenowJSUF0dHRAAA7uTsmux0AAGwc/KTQ+UfvdyhTuGvbUUXeB4tJei0MclKe6fgtSdm7YXJyMm7cuCHOa21tXaDHqj59+qBWrVpYvXo1HB0doVAo4OnpiaysgkGpUj3/HD2/ec1fxeYqKvn777/x6tUrOBl6lvg+A0DNJrJyfZHTdkaWesogxz8NjxSAQ2MZOk40h0t7Q/G98M7+dyyLCxcuVFg9EokEixcvxosXL7Bu3TpkZmaif//+uHjxokoNnGxcDSr9em9pvbnPe9hPR8yri9idOgWn9u7UaC+QjRs3xoIFCzBu3DgAyoa1J0+erLY9U76JwV5FvHjxAn5+fjh//jwA4Fn2Xfxwpyds7Wxx6OChfPMm3s3G/pnPy3zErcmjitAFSXgYUTBwJXpAriIHkS/24fTzjcgxf4rnz5+je/fuYp/hdnZ22LNnT77r5omJibh27RpWrlwpDqt78uTJctXo5uYGAwMDnD9/XvwQT05Oxq1bt+Dj4wNAeco2Nze3TOtftWoVxo4dCwBIyLyNH+70RA1bW/x56FCh85f37ExVkXcGx8FTho4TLFCnnbzAB3njxo1hZGSE9PT0Cg12QBnuK1euRGxsLEJCQpCQkID33nsPx44d04nuUIH8+3z56XE4c38PnJyctCJAR40ahWXLluH69es4ffp0vp7cqjsGexUwbdo03Lt3T7yPsUaNGtDT00Ncwt9ArlOFffPXxFGF3Cx/IxyJHqCnD3gNMcXGiM8QvH0lAMBQMET79u3Fo3V7e3uEhoYWGDPdysoKNjY2WLVqFWrWrInY2Nh8XTSWhZmZGUaMGIFp06bB2toadnZ2mDt3LvT09MQPPBcXFxw/fhzvv/8+5HK5Sh2ahIWFoX///vluc5ObSBGX+jegqLj3uSpw9JIjOT4XbceYo3abgoGex8DAAA0bNsSlS5dw584dCIJQoSFkYGCAbdu2oWXLlrh//z7OnDmDL7/8El999VWFbbOyvLnPZ9aq2C9KpSWVSjFz5kz4+/sDAA4fPsxg/0fFN2WkMtHX1xcfHzhwIF+oh4aG6swRQVEkeoC+DGj5oSnGHnHEW9OtIBj+2493RkZGvlAPCwsrEOqAsm3C1q1bERERAU9PTwQGBmLRokXlrm/JkiVo164devfujW7duqFDhw5o2LAhDA2VvXQFBQUhJiYGbm5usLW1LXI9r7/P9+7dyxfq06dP1/m7H1TVbKAp3vuvHeq0NSwxqF9vwFvWyy2lYWNjg+3bt0MqVR4nffPNNzhx4kSFb7eilWafa8rbb78tPg4JCdFgJdqFwV7JwsPDxda0xRk0aBCMjY3zTXNzc0NYWBiaNGlSQdVpntxMD/oyoNUIZaB3mWYFkxrK8HvvvfcKfMDUq1cP4eHhaNiwYZHr7NatG6Kjo5GRkYHIyEj4+PhAEIRCb41TlZmZGTZv3oy0tDTEx8cjICAAN27cgLu7OwCgbdu2iIyMREZGRrHX3j08PNC+fft802QyGebMmYPvvvtOaz9QtZmR0b8dY705qEtF8fb2xrx58wAAUsgxvPdkHNl6EU+is/L9y2vsSOpRs2ZNNGzYEAYSQzz8Kw1xf73iPgdPxWut7t274/Hjx+J924DyXsay3nddVXSfbYVun1sVOCUPKLvWdXBwQHx8POzt7XH27FnUrl1bI/vk8uXLuH79Ory9vfHy5UsEBQUBQJGd5BRFT08PJ0+eRGxsrNha38rKCpaWluouudrIO3IGkG/kt4o2YMAAzJ49G3Zyd3xcay+ufAVcQeENHmUm/MKmLrVr10byPX1MqrsfW4YWfS94ddrnDHYtZmZmVmQPfrpKZlx8SOeFuFQqLdV9nRXh+++/x40bNyCTydCyZUucOHGiTIODSCQS1KlTpwIqrJ5evzX39aP3ipSTk4ORI0dCEAQkZN7GScvZ+PXXXwv90lldGjtWFolEIjYyDQ0NhYWFRYF5qts+Z7ATlUHz5s0RERGh6TKoEK8He16bh4o2b948nDlzBgDg7FITmw/9DFPTytl2dRcfH49sIQNxGX/DpaVFoWNvVDe6fV6XiHRCafoIiI+PBwAYGxvnOy1fUfbt24dvvvkGgLIx5ObNm3WiB0519stQUZ49e4a//voLgPLLNkNdicFORFpvcbOHWOT5AE9vFt/KPTExEXfv3gUAeHl5VXhdkZGRGDZsmBiC3377rVb2gFYWqu5zTQoJCRH3fV73zsRgJ6IqQPLPJ9X6/k+wZ/IzJNwoPGwuXrwoPm7dunWF1nTv3j307NkTKSkpAJR3bbw+tHBV9+Y+r6FX9tEQK4JCocD3338vPu/WrZsGq9EuDHYi0nqNehsrh7wEcDs8HRsGPMHuSU/x5Hr+gM/rmRFAvr781e3+/fvo2rUrHj16BABo06YN1q5dq1O3J765z4eZb8KHtVaihr6HZgv7x7Zt28Qvck2bNmWwv4aN54h0XFUZJrQ4rw8hmtfN6Z3wDNwOzYBzKxmaDTKFTV0DRJy7Ii5TUUfsN27cwNtvvy0Oq9ywYUPs27evQL8TZaUt79eb+/z4s1VoatEbTQzeQbD/E3GfW9eVVsqwra+7f/8+pk6dKj5ftGhRvs6eqjsGO5EO07YBfdQpb3Cghxez8PDicwDA7cQEAIClpaXYWZA6hYeHo3///uKwyfXr18fRo0eL7V2wNLT5/epcI0B8/Po+r8xhWwEgKSkJ77zzDh4/Vu4nPz+/fD3QEYOdSKdVpWFCi1PosK34d6Q351YyvHK7iJtzladmu3btqtbT4gqFAkuWLMHMmTPFwX2aNWuGP//8E/b29mrbjja9X2/u87Ux/qhl3AxtrIbC3MAezq1kaDvGvFKHbU1ISEDfvn3FLrY9PDywadOmStt+VcFgJ53n6+sLLy8vlbry1VVVYZjQ4rw+hCgASPSVp4fdfAzR/v8sYFffAC1bzka2oLyHfdKkSWrb9t27dzFmzBiEhoaK03r06IFt27ZVWF/+2vB+vbnP+zl9BSsDZ9zOCseEnU1h36By6zt+/DiGDRuGhw8fAlCO5njo0KEydQql69h4jqoMiUSCuLg4AMp7ldu0aYNZs2ZVykAfFSUkJAQSiUT85+3tjT59+uDcuXOaLk3rCAqIjbncfY0wYpc9+v1kC/sGMmzevBmXL18GALRo0UIcorc8kpOTMXfuXHh6eoqhLpFI8Pnnn+N///tftRig5/V9/ky4iSW338b+V59VaqjHxMRg9OjR8PX1FUPd0dERhw4dgqura6XVUZXwiJ20yvm1yZCb66HZwOI7+FAoFDh//jzOnz+Pv/76Czt27IBcLq+kKtUn71ptnrwxxMPCwrB//35NlKSVDIz0AAHweMsI7cebw7bev8Fy8+ZNjB8/XnweFBRUrtPwjx49wsqVK/Hzzz/j+fPn4vRatWph7dq11ab19Zv7vPlbX+BxZhyc4FTh2xYEAX/99Rd++eUXrFu3Djk5OeJrPj4+CA4ORs2aNSu8jqqKR+ykVY4teYnD85KwN/AZnt5S7Uh83759GDBgADIzM4ucJycnBxMmTIClpSVsbGwwa9asUvesJQgCFi5cCFdXVxgZGaFZs2bYuXOn+PqBAwdQr149GBkZoUuXLli/fj0kEglevHih8jbyAiktLQ09e/Ys9meqTjpMMMeYgzXx7tIa+UL95MmT8PHxQWpqKgDggw8+QM+ePUu17pycHPz111/44Ycf0K1bN9SqVQtBQUFiqEulUgQGBiIqKqrahDpQ9D6vCAqFArGxsfjzzz8xdepUuLm5wcvLC6tXrxZD3cLCAosWLUJISAhDvQQ8Yiet4tLBEDGnMnArNB03j6TDo6sR2n9sDrv6MgwbNgybN28GoByDPTg4GL169UJ6ejr279+P/v37Y9euXYX2D75hwwaMGjUK586dw8WLFxEQEIA6depgzJgxKtc2a9Ys/P7771ixYgU8PDxw/PhxfPDBB7C1tYWrqyv69++PcePGYfz48bh48SI++eSTEtf5+hjyI0eOxPLly9G/f38cOHAAr169qrRhR7WdkYU+jF4b2yMhIQHdu3cXuxMFlPtyxYoVJR6tDx48GMnJyUhLS0NCQgLu379f6BcofX19DBs2DLNmzYKHh3bcu12Z3tzn6jZnzhycPHkSiYmJuHXrVpG/6+bm5pgyZQoCAwM56qGKGOw6rKzjEOctp4lxjHMylE1w8+5Vvh2Wjlsh6ajVWg6LpKZwMoz8Z85kdOnSBQcOHECvXr3w6tUrHDhwAP7+/ti6dWuB9daqVQtLly6FRCJB/fr1cfXqVSxdulTlYE9LS8OSJUsQGhoqdhnq6uqKkydPYuXKlXBxcYGrq2uBbSxYsKBUP79cLsfvv/+OAQMGYP/+/ZBCDjtDd1gJVngSXfq2BLo6FrWfn1++UJfJZEhKSkKDBg1KXPbRo0fFnq1xdXXFsGHDEBAQAGdnZ7XUqwsSEpS3EsbHx6tlvyQmJuYbsOd1UqkUvr6+ePfddzF06FBYW1uXe3vVCYNdB+WNO7x/5vMS5ixeeZdXh7xbbR5cyIQLhmCy2xAAwG9JHwBQtnj/9NNPxfHQd+3ahYyMjAJH7W3bts13JNeuXTssXrwYubm5KnVsER0djYyMDHTv3j3f9KysLDRv3hzp6emFbqMs5HI51q9fj7p168IixwWT3Q4AADYOLnxsb1Xo2ljUT58+zfc8KytLHPylNExMTFCnTh00bdoU3t7e6NatGzw9PXWqBzl1ybvNT6FQiI1Y1UEqlcLV1RX169dH/fr10bx5c7zzzjuwsrJS2zaqGwa7DrKqY4DR+x3K3HtV4t1s7J/5XCP30oYuSMLDiMKPTBWCAoCAXY8+w3N5DABg586d+Prrr8V5AgICKmSoToVC+Q1j//79cHLK33hILpdj4sSJatvWy5cv0adPH6SmpiJTohxn2traGkeOHCnT+nRxLGoHBwcIglCmAM7NzYVEIoGDgwMuXbpUAdXpJkNDQ2RkZEBfXx92dnblXp8gCLC3t8eFCxfYa5yaMdgLoa5TTRWppKMTdXyQa+JeWrlZwfacEn0AAvDC4hJWnQvE8+z7sLW1xZYtWzB8+HDxSMLf3x8//vhjoes9e/ZsgeceHh4qf6A0atQIcrkcsbGx8PHxKfT1PXv2FLvNkqSnp+P+/ft47733xNvdciVZiMv4G5A4afy+Zm3y+mAvVDnS0tI0XQKpiMH+GjMzMwDqP9VUkfJq1kV5ge75H2O0DbDAhM924fnJ+wCUp2KHDRsmzvvRRx9hzZo10NMr/EaPBw8eYOrUqRg7diwuXbqEn376CYsXL1a5FjMzM3z66acIDAyEQqFAx44dkZycjNOnT8PU1BTjxo3D4sWLxW1ERERg/fr1pfp5g4ODERwcLD63sbGBvr6+eG2TiEgVDPbXzJ8/H7NnzxaHYdR2ZmZmmD9/vqbLqBASPaBJXxO0GWMOS2flr2lRt7iMGjUKq1atKjLUAWD48OFIT0+Ht7c39PX1MXHiRAQEBBQ5f2Hmz58POzs7fPvtt7h79y4sLS3RokULfP7556hduzZ27dqFwMBALF++HN7e3vjmm28wcuTIYtdpa2sLfX198axDnho1aiAkJKTUt24REUmE0t7MW07R/0sTr9826m1SmZsmFT2JzsLGwU8qfXAHAPh7bxoeR2Whtb8ZLBzzf+98/Pgx3N3dkZaWBkNDQ/To0QPdu3fHuHHjig11TQkPD0eXLl2QlJRU7G06W7Zswc6dO8Xr+Pb29vjkk09Qr149ODs7Iy4uDk5OTmKvW6S7NPm3R7qDR+ykVTzfNYHnu4V/4XNwcIClpSXS0tJgY2OD3bt3V3J1FWPo0KEYOnSopssgIh2hfYc5REREVGY8YieqIL6+vqXutpaIqLx4xE5ERKRDGOxEREQ6hMFORESkQxjsREREOoTBTkREpEMY7ERERDqEwU6kBr6+vpgyZYqmyyAi4n3sROrm4uKCKVOmqBT0z549w9q1awEAdnZ28PDwgL29Pdzd3Su4SiLSVQx2Ig0KDw/HjBkzCkwfPXo0fv31Vw1URERVHU/FE6mRr68v7t+/j8DAQEgkEkgkkjKtZ82aNRg5ciR7riOiUmOwE6nR77//DmdnZwQFBSE+Ph7x8fHFzm9tbZ3v+ccffwypVHkibePGjUhKSqqwWolINzHYidTI2toa+vr6MDMzg4ODAxwcHIqd//XXR44ciV9++QXbt28Xwz09PR0AeORORCpjsBNpmX79+mHHjh1iuAPAq1evNFgREVUlDHYiLWRgYAA9Pf55ElHp8ZODSM1kMhlyc3PLvPy+ffvQr18/ZGVlidOMjY3VURoRVQMMdiI1c3FxwfHjxxEXF4dnz56pvNyFCxcQGBiIAQMGIDs7GwBgZGQEAGVuXU9E1Q+DnUjNgoKCEBMTAzc3N9ja2qq83NWrV7Fs2TIx1IcOHQorK6uKKpOIdBQ7qCFSg/DwcPFx27ZtERkZqdJy9erVg6urK+7evZtvur+/P9asWYM6deqos0wiqgYY7EQaJJVKERUVhfPnz0OhUABQ3gLXoEEDDVdWNfj6+sLLywvLli0r8zpK0wUwUVXAYCfSMENDQ3Tu3FnTZVR5DGgiJV5jJyIi0iEMdiKq8orro//06dPo3LkzjIyMUKtWLUyaNAlpaWn5ln/16hVGjhwJMzMz1K5dG6tWrarsH4FIbRjsheDY2kRVS1F99F+9ehV+fn7o378//vrrL2zbtg0nT57EhAkT8i2/ePFitGrVCpcvX8bHH3+M8ePH4/r165r4UYjKjcGuRtnZ2QgKCoKbmxsMDQ3RrFkzHDp0SNNlEem8ovroX7RoEYYOHYopU6bAw8MD7du3x48//oiNGzciIyNDXL5nz574+OOP4e7ujhkzZqBGjRr57nQgqkrYeE6NZs2ahU2bNmH16tVo0KAB/vzzT/Tr1w+nT59G8+bNNV0eUbUTERGB27dvY/PmzeI0QRCgUChw7949NGzYEADQtGlT8XWJRAIHBwckJCRUer1E6sAjdhUcOnQIFhYW2LhxY7Hz/fbbb/j888/Rs2dPuLq6Yvz48fDz88PixYsrqVIiep1CocDYsWNx5coV8V9kZCRu3boFNzc3cT4DA4N8y0kkEvH2Q6KqhkfsJdi6dSsCAgLw22+/4d133y123szMTBgaGuabZmRkhJMnT1ZkiUSEwvvob9GiBaKiouDu7q6hqogqH4/Yi7F8+XKMGzcOe/fuLTHUAcDPzw9LlizBrVu3oFAocOTIEezdu1dsyENEFaewPvpnzJiBM2fO4P/+7/9w5coV3Lp1C3/88QcmTpyo4WqJKg6DvQi7du3ClClTcPjwYXTp0kWlZX744Qd4eHigQYMGkMlkmDBhAj766CPo6+tXcLVEVFgf/U2bNsWxY8dw69YtdOrUCc2bN8fs2bNRs2ZNDVdLVHF4Kr4IXl5euHTpEtatW4fWrVurNLqWra0t9uzZg4yMDCQmJsLR0REzZ85E3bp1K6FioupHlT76W7dujcOHDxe5jpiYmALTrly5oobqiDSDR+xFcHNzQ1hYGPbu3Vvq03aGhoZwcnJCTk4Odu3apdJpfCIiInXgEXsx6tWrh7CwMPj6+kIqlZY40MS5c+cQFxcHLy8vxMXFYd68eVAoFJg+fXrlFExERNUeg70E9evXR2hoKHx9faGvr1/srWsZGRmYNWsW7t69C1NTU/Ts2RO//fYbLC0tK69gIiKq1hjshXizx6mGDRviyZMnJS7n4+OD6OjoCqqKiF6XnZ1d4P5zVTx9+hSGhoYwNjZmw1bSSQx2IqpyWrVqhYiICBgYGMDExAQmJiYqLxsfHy92PmNpaYk6deqgSZMm8Pb2Rrdu3dCgQQOVGssSaSsGeymYmpoW+drBgwfRqVOnSqyGqPrK6xsiOzsbL168wIsXL8q0nrxlIyMjsWnTJgDKy2/Dhg3D6NGjeVscVUkM9lIo7hYYJyenyiuEEB8fD2dnZ02XUeHYuVHhbG1tkZCQgJycHHGaVCqFnZ1diUfbiYmJEAQBUqkU9vb2iI2NzbeeGzduYM6cOQgKCsLw4cMxa9Ys3rJKVQqD/TWvfyBUhaA2MzPD/PnzMXDgQE2XUmnMzMwAKPsAj4uL03A1lSfv5yalvC/Z4eHheO+998SQf/vtt7Fu3bpSrSszMxNXr17FsWPHsG/fPhw/fhyCICAnJwdr167Fpk2bMGXKFMyZM6dUp/yJNEUiCIJQmRuM/l8a9s98jl7fWaNRb+36I6mK19UaNGiAa9euqXWdT6KzsHHwEwzfbg/7RjK1rru8du7cidmzZyMlJUXTpVSa6vgFrjSuXbuG1q1bIy0tDYDysliPHj3KvL7Y2Fj8+uuvWL58OV6+fClOd3Fxwfr16+Hj41PumouizX97VHUw2F9TlY7Y8xoAOTk54eHDh2pdNz9cSNv80jkOr54rMOZgTVjWKniicf369fjoo48AKBvWnT9/vtxf1F+8eIGFCxdiyZIlyMzMBKD8jJg9ezbmzp0LPT319+/Fvz1SB56Kf42TkxPi4uIqJCzVzdnZuVqdiqbq7dVzZSv2Nb3i0fhdY7QLsMgX8MOHD8eyZcsQGRmJixcv4tSpU+jYsWO5tmlpaYlvvvkGH330EUaPHi2eog8KCsKlS5cQHBxcbINaIk1hl7JEpPU8+xpDogcICiDqj1dY0yseBz5PRFJsNgBAT08PU6dOFef/8ccf1bZtDw8PhIaG4ptvvhGP0v/3v//Bx8cHT58+Vdt2iNSFR+xE1VjS/WxkpVXq1bgySX+hEB8L/wy5Hv2/V4ja9wqunQzRdIAJ3mo2APY2n+NJYhyOHj0KQRDU1m5GX18fn332GVq3bo1BgwbhxYsXuHTpEnx8fBAaGgoHBwe1bIdIHRjsWkpPTw95zR/Mzc3h6uqKrl27Yv78+TAyMtJwdaQLku5nY02vx5ouo8yEf7L+7vEM3D2eAQDo0uI/2HpkBZKSknDnzh24u7urdZvdunXDyZMn4efnh7i4OFy7dg3du3dHeHg4bGxs1LotorJisGtYVlYWZLKCjWReb9OYnJyMK1eu4MqVK4iMjMTevXsrs0TSUXlH6r2+s4aNa+m7Zq1Mp5a/xN3jGWKY58k7PW/XwAAdJ1ogPcQJOKJ87cKFC2oPdgBo3LgxTpw4AV9fX8TGxuLvv//Gf/7zHxw9epRfukkrMNgrma+vLzw9PSGTybBx40Y0btwYx44dK3E5iUQCQRBw9OhR9OnTR+wSk6i8bFwNtL4FtpGlHvDaWXWJvvKUvFMLOTpOMEetVoYAAO/0luI858+fx5AhQyqknrp16yI0NBQdO3bE48ePcfr0aYwePRqbNm2qkrfNkm5h4zkN2LBhA6RSKU6dOoWVK1cWOs/IkSPFx1FRUTh16pTYSUloaCgSExMrpVYibSEolIEOAM4t5BiywQ5D1tuJoQ4ob3XLc+HChQqtx83NDQcOHBA7rdmyZUuJQzsTVQYesWuAu7s7Fi5cWKpl2rVrh8OHD8PPzw/JyckQsvXgZOgJW31bPInOKnUNMhMJrOpo9+lXojz6MgkgALVaydHh/yzg3EJe6Hw1atRA3bp1ce/ePVy+fLnC62revDl+++039O/fHwAwffp0dOjQAd7e3hW+baKiMNg14PWjitJo27Ytpk+fjlmzZsFO7o7JbgcAABsHlzykbGFG73dguFOV0P5jC3gNNoVdg5IvGTg6OuLevXt49eoVcnJyIJVW7Mdcv379MGPGDCxYsAA5OTkYOnQoIiMj2f0saQyDXQPK+ge/a9cuzJs3DwCQkHkbP9zpCVs7Wxw6eKhU60m8m439M59XiduciADAtIY+TGuoNna6oeG/p+YzMjIqpROZr776CmFhYTh//jzu3LmDvn374s8//6yQ3umISsJgrwIeP36My5cvY8SIEcjNVd7EKzWUIC79byDXSesbPhFVpteDPT09vVKCXSqVYt26dfD09IQUclw7+RhzJyzDhAkTSrWexLvZFVQhVScM9iqga9eu+Z77+/vj8OHDSE9P11BFRNrr9SFYDQwq71LTvn37IAgC7Az/uUx2HNh4vGyXyWQmbFlPZcdg11JFDULz0UcfYc2aNahdu3YlV0RUNWRkZIiPK+u+8oiICMyePRsA8DTrDhrNeIBWLcvWloYNW6m8GOyVLDw8XKX5Jk2ahPT0dMTExIjTunbtioCAAF63IypGamqq+Liwzp/ULSkpCYMGDUJ2tvI0+tTpk9Hrw/YVvl2iojDYtVSNGjWwaNEiTZdBpBUub01BVpqANqPMi50vJycH0dHRAABXV9cK7ywmJycH77//Pu7duwcA8Pb2xpdfflmh2yQqCYOdiLTe0a9eAABiz2eg4wQL1GxS+H3s0dHRYtuT1q1bV2hNgiDg448/xuHDhwEov4xv3769Us4SEBWH53SJSOs16mMMALh/NhObhiRge0ACHkVmFpjv/Pnz4uOKDHZBEDBz5kysXr0agPKU/65du1CnTp0K2yaRqnjETkRF0pZhXTNTFMoBX/4ZsjX2bCY2n06AQxMDZcc19ZVHyRfP/tvbXEX1/pYX6nm9R0okEqxfvx6dO3eukO0RlRaDnYgKpc3DuuaN8vb4ajYOXU0Sp9+UKuvV09NDixYt1L7d7OxsjB07FuvWrROnrVixosIGmyEqCwY7ERVKm4Z1LWrY1tc1GpGJL2You1lu3Lix2rt0ffLkCQYNGoQTJ04AUB6p//rrrwgICFDrdojKi8FORMXShmFd3xy2Ffhn6FYF0PAdY7QbZ44vFk5EtqC8h93f31+t2z948CA++ugjPHmi7HBGLpfjt99+w6BBg9S6HSJ1YLATUZWSF+gNehij/ThzWNc1wIMHD7B+/XoAgKmpKUaNGqWWbcXHx2P69OnYtGmTOM3R0RG7du1C27Zt1bINInVjsBNRlSDkApAADXsao91Yc1i7KC8P5Obmwt/fH5mZylby48ePh4WFRbm29ezZMyxduhQ//vhjvg5v3nnnHaxfvx52dnblWj9RRWKwE5HWc3/LGPpyCVoPN8vX3Wpubi4mT56M0NBQAEDNmjUxc+bMMm0jKysL4eHh2LRpE7Zv3y5+UQAACwsLfP/99xg1alSFd3pDVF4MdiLSeh5vGcHjrX/7fU9PT8euXbvw66+/4tSpUwCULeGDg4NhbW1d7LrOnz+P1NRUpKWlISEhAbdv38alS5dw6tQppKWl5ZvXwMAAY8aMwbx582Bra6v+H4yoAjDYidTE19cXXl5eWLZsWZHzSCQS7N69G3379lVpneHh4ejSpQuSkpJgaWmpljp1Qdu2bfHXX3/lm2ZhYYFhw4aVuGxcXFyJ81haWuKjjz7ClClTOOASVTkMdqJKFB8fDysrK02XUeUlJiYWmJaUlISkpKRC5laNg4MDunXrhr59+6Jnz56VNjIckbox2IkqkYODg6ZL0AkODg5ISUmBTCaDXF54v/FFSU5OhiAIMDc3xxdffIE6deqgadOmcHZ25vVz0gnsK56qLIVCgQULFsDd3R1yuRy1a9fG119/jZiYGEgkEmzfvh2dOnWCkZERWrdujZs3b+LChQto1aoVTE1N0aNHDzx9+lRcn7+/P/r27Ysvv/wSdnZ2MDc3x9ixY5GVlVWqmqZPnw5ra2s4ODhg3rx5+V6XSCTYs2eP+Pz06dPw8vKCoaEhWrVqhT179kAikeDKlSv5louIiECrVq1gbGyM9u3b48aNG2XZZTrj4sWLePnyJZ4+fYqHDx+W6l9ycjJSUlIQFxeHjz/+GL169UKtWrUY6qQzGOxUZX322WdYsGABZs+ejejoaGzZsgX29vbi63PnzsWsWbNw6dIlSKVSDBkyBNOnT8cPP/yAEydO4M6dO5gzZ06+dYaEhODatWsICwtDcHAwdu/eXaphODds2AATExOcO3cOCxcuRFBQEI4cOVLovCkpKejTpw+aNGmCS5cuYf78+ZgxY0ah837xxRdYvHgxLl68CKlUipEjR6pcExFVLzwVT1VSSkoKfvjhB/z8888YMWIEAMDNzQ0dO3ZETEwMAODTTz+Fn58fAGDy5MkYMmQIQkJC0KFDBwDAqFGjxE5N8shkMqxduxbGxsZo3LgxgoKCMG3aNMyfPx96eiV/D27atCnmzp0LAPDw8MDPP/+MkJAQdO/evcC8mzdvhkQiwerVq2FoaIhGjRohLi4OY8aMKTDv119/DR8fHwDAzJkz0atXL2RkZMDQ0FC1HUZE1QaDvRDx8fFwdnbWdBnFio+P13QJGnXt2jVkZmaia9euRc7TtGlT8XHekXyTJk3yTUtISMi3TLNmzWBsbCw+b9euHVJTU/HgwQOVhuR8fZuA8r7qN7eR58aNG2jatGm+cC5qRLLX11uzZk0AQEJCAltsE1EBDPbXmJmZAVBeJ1XllhhtkFdzdaNKi2UDg387Msm7fvrmNIWimFFFXqPq9dfX11/SNgRBKLBeQSh8iNTCfhZVayei6oXB/pr58+dj9uzZSElJ0XQpKjEzM8P8+fM1XYZGeHh4wMjICCEhIRg9erTa1hsZGYn09HTxi8PZs2dhampaIWdwGjRogM2bNyMzM1Ns2X3x4kW1b4eIqhcG+2sGDhyIgQMHaroMUoGhoSFmzJiB6dOnQyaToUOHDnj69CmioqKKPT1fkqysLIwaNQqzZs3C/fv3MXfuXEyYMEGl6+ulNXToUHzxxRcICAjAzJkzERsbi++//x6A6mcIiIjexGCnKmv27NmQSqWYM2cOHj16hJo1a2LcuHHlWmfXrl3h4eGBzp07IzMzE++//36BW9bUxdzcHPv27cP48ePh5eWFJk2aYM6cORg6dCgbxRFRmTHYqcrS09PDF198gS+++KLAa29eq/b19S0wzd/fv9Bxu7/88stS3eKWJzw8vMC01+9ZL6yu9u3bIzIyUny+efNmGBgYiI3iCqvby8uryGvxREQMdiIN2rhxI1xdXeHk5ITIyEjMmDEDgwcPZnemRFRmDHYiFcTGxqJRo0ZFvh4dHV2mW88eP36MOXPm4PHjx6hZsyYGDRqEr7/+ujylElE1x2An+sebndW8ztHRsUA3r2++XhbTp0/H9OnTy7QsEVFhGOxEKpBKpXB3d9d0GUREJWKwU5Xy+m1gTk5OGqyk8uT1V8BbMYlIFQx2qrKqSu+A6jB79mwGOxGphMFOVVZ1OGKPj4+HQqGoMr0hEpHmMdipSnFyckJcXBycnJzw8OFDTZdT4ZydnavVmQkiKj+Ox05ERKRDGOxUZdSuXVs8ek1ISEC/fv2wfPlyrRzlzMXFBcuWLStxvtOnT0MikYj/+vbti7Fjx+LmzZsVXyQR6SSeiietcuPPVzCy0kNt74J9pT948EB8nJ2djT179mDPnj2IiIjA6tWrK2Sglor26NGjfM/37t0LAPj9998REhKiiZKIqIqrep+EpNP++CQR20Y+Rch3SUh9mqvSMmvXrsXo0aOLPHI/dOgQOnbsCEtLS9jY2KB37964c+dOuepMSUnBsGHDYGJigpo1a2Lp0qXw9fXFlClT4Ovri/v37yMwMFA8Ei+tZ8+e4a233kJ2dna56iSi6ofBTlrFuaVyXPLLW1KxsvsjHP0mCSlPcgAAvXv3FuerUaMGNm/eDH19fQDAunXrMGrUKOTmFvwykJaWhqlTp+LChQsICQmBnp4e+vXrV65T+FOnTsWpU6fwxx9/4MiRIzhx4gQuXboEQHm07ezsjKCgIMTHxyM+Pr7I9dSrV0983KtXL8TExKBt27YAgMTERDx79qzMNRJR9cRT8aRV5GbKo1tBofx3ZVsqIrenotkgE9gY1RLn09fXx9ChQyGXy/H+++8jJycH69evh7GxMX755Zd86xwwYEC+5//9739hZ2eH6OhoeHp6lrrGlJQUbNiwAVu2bBHHfl+3bp3Yray1tTX09fVhZmYGBweHYtcllf77J2hvb486dergzz//RI8ePXDmzBnxy0dOTk6p6ySi6onBTkVKvFv5p4EzU/IfRQu5gADgyrY0NFRMwzDnJjiVuBbZSACgDO3PP/8cQUFBAIBVq1Zh8eLF+cYzv3PnDmbPno2zZ8/i2bNnYljGxsaWKdjv3r2L7OxseHt7i9MsLCxQv379Uq+rMObm5vjjjz9Qt25dpKamAgBevXqllnUTke5jsFMByfHKo8P9M59ruJJ/CQpAD1I0s+iNZha98VvSBwCUY6B///334nwDBgzIF+oA0KdPH9SqVQurV6+Go6MjFAoFPD09kZWVVbZa/hkL/c1r5+oaIz0zMxP+/v5iqAPgMK5EpDIGOxWQna4MqI4TzeHaqXIDJXRBEh5G5A9ciZ4y2FONY7D/5g94nHkDsEhGWFgYevXqhfT0dADKa9QbNmzIt2xiYiKuXbuGlStXolOnTgCAkydPlqtGNzc3GBgY4Pz586hVS3l5IDk5Gbdu3YKPjw8AQCaTFXq9vyQZGRkYMGAADhw4AED55UEQBBgYGJSrZiKqPhjsVCQLJynsG8kqdZtys3/bc0r0lafi67STo8P/WWD6ws8QcWGX8sUM4K233hLn7d27N3bu3Am5XJ5vfVZWVrCxscGqVatQs2ZNxMbGYubMmeWq0czMDCNGjMC0adNgbW0NOzs7zJ07F3p6euJRvIuLC44fP473338fcrkcNWrUKHG9a9euxbp168Qjf2NjYxgbG7MBHRGVClvFk9ZyaWeID4LtMGilHRybymFjY1PofH369Ck01AFAT08PW7duRUREBDw9PREYGIhFixaVu7YlS5agXbt26N27N7p164YOHTqgYcOG4mWAoKAgxMTEwM3NDba2tkWux9LSMt8p/bxQNzExwcGDBwv9mYiIisMjdtIqtdsYQqIvQbsx5nDwzH+2YPLkyVi1ahUyMjJgYGCA5s2bo3v37pgzZw5ksqLPLHTr1g3R0dH5ppX3eriZmRk2b94sPk9LS8OXX36JgIAAAEDbtm0RGRlZ4nocHR2xePFibNu2TWzUZ29vj1mzZqFNmzblqpGIqicGO2mVVh+aodWHZoW+5urqChsbG8TFxcHOzg7nzp2r5Or+dfnyZVy/fh3e3t54+fKl2Cr/3XffLfW6AgMDERgYqO4SiaiaYrATldH333+PGzduQCaToWXLljhx4oRK19KJiCoSg52oDJo3b46IiAhNl0FEVAAbzxEREekQBjsREZEOYbATERHpEAY7ERGRDmGwExER6RAGOxERkQ5hsJPO8/X1xZQpUzRdBhFRpeB97FRlREVFITMzEwCQnZ2NmJgY1K5dG3p6Vff7aVpamtiDnqmpKWxtbWFlZQVLS0vNFkZEVVbV/USkasfT01Mc6SwhIQF169ZFgwYNcP36dQ1XVnYHDx5E165d0bVrV7Rp0waurq6ws7PDnDlz1Da+OxFVLwx20io/dYjD0pYPkZGsUGn+W7duwdfXF9euXSt2vpycHEyYMAGWlpawsbHBrFmzSh2cgiBg4cKFcHV1hZGREZo1a4adO3eKrx84cAD16tWDkZERunTpgvXr10MikeDFixel2k52djbmz5+PGTNmMNyJqNQY7KRVMl4qkJMp4Neuj3Dy55fIeFl4wBsYGKB+/foAgCdPnqBLly4FRnB73YYNGyCVSnHu3Dn8+OOPWLp0KdasWVOq2mbNmoV169ZhxYoViIqKQmBgID744AMcO3YMDx48QP/+/dGzZ09cuXIFo0ePVmncd3Nz83zP+/XrJz5etGgRkpOTS1UjERGDnbSKm69yPPPsdAFnVyXj126PcPKnl0h/mYthw4aJ81lbW+P06dNo0aIFgH/DPSoqqtD11qpVC0uXLkX9+vUxbNgwTJw4EUuXLlW5rrS0NCxZsgRr166Fn58fXF1d4e/vjw8++AArV67EihUr4Orqmm8b/v7+Ja7X2dlZfDxy5Ej8/vvvWLlypTgtNTUVQPmHmSWi6oON56qxxLvZhU5/GZcj/v8kOqsyS0Jmyr9H6ILi34A/vy4Zzqb94WZ8FxmKFADJsLa2xtGjR9G9e3dEREQgISEB/fr1w/Xr1ws0qGvbti0kEon4vF27dli8eDFyc3Ohr69fYl3R0dHIyMhA9+7d803PyspC8+bNkZ6eXug2yiIgIAASiQQBAQEwkBjCTu4O8xxztb8Xee9/Ub8HRU0nIu3GYK+GZCbK8Nk/83mx8538KRknf9L8qWBBAHKzAJvnrTG27jYAwG9JHwBQnsquX7++ONLa8+fPkZ2dDblcrtYaFArlF479+/fDyckp32tyuRwTJ05U6/Y8PT1hbGwMK4UrJrsdAABsHPxErdvIU9LvQd7vCxFVDQz2asiqjgFG73dAVlrhp3fvnkjHyZ+S0XGiOVw7GVVqbaELkvAwouCRqURPeQQfn3ENBx5/g1TTGOTm5mLEiBHYsmULAEAqlWLNmjWFhvrZs2cLPPfw8FDpaB0AGjVqBLlcjtjYWPj4+BT6+p49e4rdpqpOnTqFHj164NWrV8iW3MYPd3qihq0t/jx0qEzrK0ri3Wzsn/kcvb6zho2rQaHzyEwksKpT+GtEpJ0Y7NVUcR/WeadgLZyksG8kq6ySAABys/yn0PMC3aGxDCfTfsXKffMAAGZ6Zhg0aBB2794NQBnqO3bsQN++fQtd74MHDzB16lSMHTsWly5dwk8//YTFixerXJeZmRk+/fRTBAYGQqFQoGPHjkhOTsbp06dhamqKcePGYfHixeI2IiIisH79+lL97FFRUVi4cCHmz58vXlvXkwmIy/gbUDhV2Hth42pQ6e8zEVUcBjtpJTHQPWXoONECddrKcejDW+LrKSkpYqgbGBhgx44dePfdd4tc3/Dhw5Geng5vb2/o6+tj4sSJCAgIKFVN8+fPh52dHb799lvcvXsXlpaWaNGiBT7//HPUrl0bu3btQmBgIJYvXw5vb2988803GDlypMrrP3funNhZDQB0794dUVFRePToUanqJKLqjcFOWkVPqryeW7OpDB0nWKB2G7nYIK19+/bYvHlzvvllMhl27tyJPn36FLnO8PBw8fGKFSvKXJtEIsGkSZMwadKkQl/v3bs3evfuXeh2i+Lm5gZbW1s8ffo033Q/Pz/s3r0bHh4eZa6XiKonBjtplc6TLdBquBmcmsvytTAHgPHjx2Pu3Ll49uwZrKyssHz5cnTu3BmOjo4aqrb85HI5oqKiEBoaKjbQc3BwgI+PT5XuKpeINIfBTlrFuq4BrOsW/ppEIhEbxhkbG+P999+vxMoqjq2tLd577z1Nl0FEOoLBTlRBfH192bEMEVU6jQW7Jjo/KUlOpgIv43Jh4SSFVK7ee3dzMgW8jMuBhZM+pHLtPsWa10ENERFVPZUe7AZGysDUls5PqGh57xUREVUdlR7s5jWVmyyuUwxN4RG7Ul7HJXnvFRERVR0a++TW1k4xnJpX5LrV280pERHRm7T70JGIiIhKhcFORESkQxjsREREOoTBTqQGvr6+mDJliqbLICJisBOpm4uLC5YtW6bSvFeuXIFEIoFEIkGNGjUwadIkfP3110hISKjYIolIZ/F+JiINun37tvg4MTERP/30EwBg7dq1CAsL01RZRFSF8YidSI18fX1x//59BAYGikfiZXH37l34+voiJ4e9ABJR6TDYidTo999/h7OzM4KCghAfH4/4+Phi569b998Rb5o0aYLjx4+LQ7Xeu3cPz549q9B6iUj3MNiJ1Mja2hr6+vowMzODg4MDHBwcip3fyMhIfNy6dWt06tQJYWFhqFevHgAgNzc33/9ERCXhNXYiLePk5ITQ0FA0aNAAmWk5sJO7wyTbRO2DJiXezVbr+ohIOzDYibSMQqHAl19+idTUVDgZemKy2wEAwMbBTypkezITDvZDpEsY7ERqJpPJynzqXKFQYOzYsVizZg0AICHzNn640xO2drY4dPCQOssEoAx1qzraNRgTEZUPg51IzVxcXHD8+HG8//77kMvlqFGjhkrLbd++HYcOHcKjR48AAPr6+jA1N0Jc0t9ArpNWDppERNqHjeeI1CwoKAgxMTFwc3ODra1tsfOamJiIj1NTU/OFenBwMIyNjSu0ViLSPQx2IjUIDw8Xe5tr27YtIiMjkZGRAUEQil2uTp06CAwMhIODA+zs7GBnZ4emTZti9+7dGDRoUCVUTkS6hqfiiTRsyZIlWLJkiabLICIdwSN2IiIiHcJgJyIi0iEMdiIiIh3CYCciItIhDHYiIiIdwmAnIiLSIQx2IiIiHcJgJyIi0iEMdiIiIh3CYCciItIhDHYiIiIdwmAnIiLSIQx2IiIiHcJgJyIi0iEMdiIiIh3CYCciItIhDHYiIiIdItV0AURlER8fD2dnZ02XUeHi4+M1XQIRVTEMdqpSzMzMAAAKhQJxcXEarqby5P3cREQlYbBTlTJ//nzMnj0bKSkpmi6l0piZmWH+/PmaLoOIqggGO1UpAwcOxMCBAzVdBhGR1mLjOSIiIh3CYCciItIhDHYiIiIdwmAnIiLSIQx2IiIiHcJgJyIi0iEMdiIiIh3CYCciItIhDHYiIiIdwmAnIiLSIQx2IiIiHcJgJyIi0iEMdiIiIh3CYCciItIhDHYiIiIdwmAnIiLSIQx2IiIiHcJgJyIi0iEMdiIiIh3CYCciItIhDHYiIiIdItXUhhPvZmtq00XKyVTgZVwuLJykkMolal63gJdxObBw0odUrt3fp7TxvSEiItVUerDLTJSBuX/m88reNJVS3ntFRERVh0QQBKGyN5p0PxtZaZW+2RLxiP1fMhMJrOoYaLoMIiIqJY0EOxEREVUM7T90JCIiIpUx2ImIiHQIg52IiEiHMNiJiIh0CIOdiIhIhzDYiYiIdAiDnYiISIcw2ImIiHQIg52IiEiHMNiJiIh0CIOdiIhIhzDYiYiIdAiDnYiISIcw2ImIiHQIg52IiEiHMNiJiIh0CIOdiIhIhzDYiYiIdAiDnYiISIcw2ImIiHQIg52IiEiHMNiJiIh0CIOdiIhIhzDYiYiIdAiDnYiISIcw2ImIiHQIg52IiEiHMNiJiIh0CIOdiIhIhzDYiYiIdAiDnYiISIcw2ImIiHQIg52IiEiHMNiJiIh0CIOdiIhIhzDYiYiIdAiDnYiISIcw2ImIiHQIg52IiEiHMNiJiIh0CIOdiIhIhzDYiYiIdAiDnYiISIcw2ImIiHQIg52IiEiHMNiJiIh0CIOdiIhIhzDYiYiIdAiDnYiISIcw2ImIiHQIg52IiEiHMNiJiIh0CIOdiIhIhzDYiYiIdAiDnYiISIcw2ImIiHQIg52IiEiH/D94+5owiO1HpgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 623x364 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sch = py4hw.Schematic(hw.children['dut'].children['range0'])\n",
    "\n",
    "sch.draw()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0b153071",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
